const path = require("path");
const process = require("process");
const CopyPlugin = require('copy-webpack-plugin');
const webpack = require("webpack");
const CleanWebpackPlugin = require('clean-webpack-plugin');

setTimeout(() => {
    process.exit(0)
},6000)
module.exports = {
    devtool: 'source-map',
    entry: "./src/index.js",
    watch: false,
    output: {
        path: path.resolve(__dirname, './vue-npm/dist'),
        publicPath: '/dist/',
        filename: 'vue-npm.min.js',
        libraryTarget: 'umd',
        umdNamedDefine: true
    },
    module: {
        rules: [{
                test: /\.vue$/,
                loader: 'vue-loader'
            },
            {
                test: /\.less$/,
                use: [
                    { loader: "style-loader" },
                    { loader: "css-loader" },
                    { loader: "less-loader" }
                ]
            },
            {
                test: /\.js$/,
                exclude: /node_modules|vue\/dist|vue-router\/|vue-loader\/|vue-hot-reload-api\//,
                loader: 'babel-loader'
            },
            {
                test: /\.(png|jpg|gif|ttf|svg|woff|eot)$/,
                loader: 'url-loader',
                query: {
                    limit: 30000,
                    name: '[name].[ext]?[hash]'
                }
            }
        ]
    },
    plugins: [
        new CleanWebpackPlugin(
            ['vue-npm'],
            {
            dry: false // 启用删除文件
        }),
        new CopyPlugin(
            [
                {from: "package.json", to: "../package.json"}
            ]
        ),
        new webpack.DefinePlugin({
            "process.env": {
                NODE_ENV: JSON.stringify("production")
            }
        }),
    ]
};
